package com.xujie.sportsmeeting.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xujie.sportsmeeting.entity.EventRegistration;

import java.util.List;

/**
 * 项目报名服务接口
 */
public interface EventRegistrationService extends IService<EventRegistration> {

    /**
     * 运动员报名项目
     */
    boolean registerEvent(Long eventId, Long athleteId, String remarks);

    /**
     * 审核报名
     */
    boolean auditRegistration(Long registrationId, Integer auditStatus, String auditRemark, Long auditUserId);

    /**
     * 检查运动员是否已报名该项目
     */
    boolean hasRegistered(Long eventId, Long athleteId);

    /**
     * 获取项目的报名列表
     */
    List<EventRegistration> getEventRegistrations(Long eventId);

    /**
     * 获取运动员的报名列表
     */
    List<EventRegistration> getAthleteRegistrations(Long athleteId);

    /**
     * 取消报名
     */
    boolean cancelRegistration(Long registrationId, Long athleteId);

    /**
     * 生成报名编号
     */
    String generateRegistrationNumber(Long eventId);
}
